const { studentsModel } = require('../models/studentsModel')
//req请求对象，res响应对象
module.exports.createStudents = async function(req, res){
    console.log(req.body);
    try{
        const data = req.body;
        const result = await studentsModel.create(data)
        res.send({
            message: '学生数据新增成功',
            code: 1
        })
    }catch(error){
        console.log('服务器错误', error);
        res.send({
            message:'学生数据新增失败',
            code: 0
        })
    }
}
//获取学生
module.exports.getStudents = async function(req, res){
    const { pageSize, currentPage, type = 'name', value = ''} = req.query;
    //获取学生的总条数
    const total = await studentsModel.countDocuments({
        [type]: {  $regex: value , $options: '$i'}
    })
    //计算总页数
    let pages = 1;//默认获取所有的数据（只有一页）
    if(pageSize) {// pageSize有值，则表示用户需要分页获取数据
        pages = Math.ceil(total / pageSize);//计算总页数
    }
    const result = await studentsModel
        .find({
            [type]: {  $regex: value , $options: '$i'}
        })
        .populate('subjectsId classesId')
        .limit(pageSize - 0)//请求树数据条数
        .skip((currentPage - 1) * pageSize)//跳过的数据条数

    res.send({
      message:'学生数据获取成功',
      code: 1,
      result:{ total, pages, rows: result}
  })
}

module.exports.deleteStudents = async (req,res) => {
    const data = req.body;  
    const result = await studentsModel.deleteOne(data);
    if(result.deletedCount > 0){
        res.send({
            code:1,
            message:'学生删除成功'
        })
    }else{
        res.send({
            code:0,
            message:'学生删除失败，请检查删除条件'
        })
    }
}